package cily.utils
{

	
	import flash.text.AntiAliasType;
	import flash.text.StyleSheet;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;

	
	public class TextFieldUtil
	{
		/**
		 * @private
		 */
		private static var _stylesheet:StyleSheet;
		
		/**
		 * Méthode de raccourcit pour créer un champs texte.
		 * 
		 * <p>Les propriétés par défaut du champs texte renvoyé sont
		 * <code>autoSize='left', antiAliasType = 'advanced', embedFonts = true,
		 * mouseEnabled = false, multiline = false, selectable = false, wordWrap = false</code></p>
		 * 
		 * @param	applyCSS	Définit si la feuille de style CSS enregistrée est appliquée automatiquement ou non.
		 * 
		 * @return	Champs texte avec les propriétés applliquées par défaut.	
		 */
		public static function create(applyCSS:Boolean = true):TextField
		{
			var field:TextField = new TextField();
				field.autoSize = TextFieldAutoSize.LEFT;
				field.antiAliasType = AntiAliasType.ADVANCED;
				field.embedFonts = true;
				field.mouseEnabled = false;
				field.multiline = true;
				field.selectable = false;
				field.wordWrap = false;
				field.thickness = 95
				field.sharpness = 10
				
				
			if (applyCSS)
			{
				if (_stylesheet != null)
				{
					field.styleSheet = _stylesheet;
				}
				else
				{
					trace("Attempt to apply an unknown stylesheet on TextField.");
				}
			}
			
			return field;
		}
		
	
		
		/**
		 * Remplit le champs texte avec le texte passé en paramètre.
		 * 
		 * @param	field	Champs texte
		 * @param	text	Texte
		 * @param	html	Spécifie si le texte est au format hmtl
		 */
		public static function setText(field:TextField, text:String, html:Boolean = true):void
		{
			(html) ? field.htmlText = "<body>" + text + "</body>" : field.text = text;
		}
		
		/**
		 * Enregistre la feuille de style CSS.
		 * 
		 * <p>Enregistre la feuille de style CSS afin de pouvoir la réccupéré plus facilement
		 * via la méthode <code>getStyle</code>.</p>
		 * 
		 * @param	style	Feuille de style CSS.
		 */
		public static function setStyle(style:StyleSheet):void
		{
			_stylesheet = style;
		}
		
		/**
		 * Renvoi la feuille de style CSS enregistrée.
		 * 
		 * @return	Feuille de style CSS.
		 */
		public static function getStyle():StyleSheet
		{
			return _stylesheet;
		}
	}
}